package s2elinshu;

import other.J13DefaultClass;

public class J13AccessModifier {

	private String name;

	public static void main(String[] args) {
		// default 접근지정자로 선언된 클래스 호출
		// J13AccessModifier와 J12ExCompany는 둘 다 동일한
		// pkg(s2elinshu)안에 있기 때문에 호출이 가능
		J12ExCompany apple = new J12ExCompany();

		// default 접근지정자로 선언된 클래스 호출
		// CanISeeMe는 pkg(other)가 다르기 때문에 접근이 불가능하다
		/* CanISeeMe seeme = new CanISeeMe(); */

		// private 접근지정자로 선언된 필드 호출
		// J13AccessModifier에서 private로 선언한
		// name을 am객체를 통해 호출
		J13AccessModifier am = new J13AccessModifier();
		am.name = "태희";

		// private 접근지정자로 선언된 필드 호출
		// PrivateClass에 private로 선언된
		// name변수는 J13AccessModifier 에서 호출 불가(외부 클래스에선 호출해서 사용할 수 없음)
		
		// 호출불가 - 이것에 대한 해결책은?
		//  public, default,protected는 호출이 되지만 private는 class가 다르기 때문에 불러올 수 없음
		// 반드시 생성자는 public이어야 함
		PrivateClass pc = new PrivateClass();
		/* pc.name = "지현"; */

	     } // main 닫음
       } // J13AccessModifier class 닫음

class PrivateClass {
	public PrivateClass(){
	};
    /*protected PrivateClass(){
	};
	private PrivateClass(){
	};
	PrivateClass(){
	};*/
	private String name;
}